package com.supermap.dataservice.newmessage;

import com.supermap.dataservice.newmessage.dao.NewMessageDao;
import com.supermap.dataservice.util.JSONUtil;
import com.supermap.dubbo.api.newmessage.NewmessageService;
import com.supermap.dubbo.api.newmessage.entity.NewMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.dubbo.config.annotation.Service;

import javax.annotation.Resource;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

/**
 * @author lxs
 * @Title:最新评论消息业务层
 * @Description:
 * @date 2018/3/14  14:21
 */
@Service
public class NewMessageServiceImpl implements NewmessageService {
    /**
     *使用指定类初始化日志对象，在日志输出的时候，可以打印出日志信息所在类
     */
    protected static final Logger logger = LoggerFactory.getLogger(NewMessageServiceImpl.class);
    @Resource
    private NewMessageDao newMessageDao;
    @Override
    public JSONUtil getNewMessageList(String uid) {
        //初始化Json封装工具类
        JSONUtil jsonUtil = new JSONUtil();
        try{
            Date dNow = new Date();   //当前时间
            Date dBefore = new Date();
            Calendar calendar = Calendar.getInstance(); //得到日历
            calendar.setTime(dNow);//把当前时间赋给日历
            calendar.add(Calendar.DAY_OF_MONTH, -1);  //设置为前一天
            dBefore = calendar.getTime();   //得到前一天的时间
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //设置时间格式
            String qtqDate = sdf.format(dBefore);    //格式化前一天
            String dqDate = sdf.format(dNow); //格式化当前时间
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date dt1 = df.parse(dqDate);//当前时间
            Date dt2 = df.parse(qtqDate);//一天前时间
            List<NewMessage> news=newMessageDao.getNewMessageList(uid);
            List<NewMessage> oneDatenew=new ArrayList<>();
            for (int i = 0; i <news.size() ; i++) {
                Date creatime = news.get(i).getCreatetime();
                if(dt2.getTime()<=creatime.getTime() && creatime.getTime()<=dt1.getTime()){
                    oneDatenew.add(news.get(i));
                }
            }
            jsonUtil.setMsg("Get newmessage success！");
            jsonUtil.setIsSuccess(true);
            jsonUtil.setCode(200);
            jsonUtil.setData(oneDatenew);
        }catch (Exception e){
            //捕捉数据库异常
            logger.error("NewMessageServiceImpl=>getnewmessgae=>DaoException:"+e.getMessage());
            jsonUtil.setMsg("Get newmessage flase！");
            jsonUtil.setIsSuccess(false);
            jsonUtil.setCode(100);
        }
        return jsonUtil;
    }

    @Override
    public JSONUtil updateNewMessage(String id) {
        //初始化Json封装工具类
        JSONUtil jsonUtil = new JSONUtil();
        try {
            newMessageDao.updateNewMessage(id);
            jsonUtil.setMsg("Update newmessage success！");
            jsonUtil.setIsSuccess(true);
            jsonUtil.setCode(200);
        }catch (Exception e){
            //捕捉数据库异常
            logger.error("NewMessageServiceImpl=>updateNewMessage=>DaoException:"+e.getMessage());
            jsonUtil.setMsg("Get newmessage flase！");
            jsonUtil.setIsSuccess(false);
            jsonUtil.setCode(100);
        }

        return jsonUtil;
    }

    @Override
    public JSONUtil getNewMessageandUpdateById(String id) {
        //初始化Json封装工具类
        JSONUtil jsonUtil = new JSONUtil();
        try{
            int n=newMessageDao.updateNewMessage(id);
            if(n==1){
                NewMessage newMessage = newMessageDao.getNewMessageById(id);
                jsonUtil.setMsg("get newmessage success！");
                jsonUtil.setIsSuccess(true);
                jsonUtil.setCode(200);
                jsonUtil.setData(newMessage);
            }
        }catch (Exception e){
            //捕捉数据库异常
            logger.error("NewMessageServiceImpl=>getNewMessage=>DaoException:"+e.getMessage());
            jsonUtil.setMsg("Get newmessage flase！");
            jsonUtil.setIsSuccess(false);
            jsonUtil.setCode(100);
        }
        return jsonUtil;
    }
}
